package com.flyoil.petromp.ui.activity.activity_matter;

import android.graphics.Bitmap;
import android.net.http.SslError;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.SslErrorHandler;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import com.flyoil.petromp.R;
import com.flyoil.petromp.base.BaseActivity;
import com.flyoil.petromp.base.BaseEntity;

/**
 * 查看单据详情界面的文件预览地址
 */
public class OrderSeeFileHtmlActivity extends BaseActivity {
    private WebView webView;
    private String url = "";

    @Override
    protected int getContentViewResId() {
        return R.layout.activity_order_see_file_html;
    }

    @Override
    protected void initViews() {
        super.initViews();
        webView = $(R.id.web_order_see_file);
        setBackOnclickListner(mContext);
        setTextTitleName("文件预览");
        setwebview();
        url = getIntent().getStringExtra("url");
    }

    @Override
    protected void initdatas() {
        super.initdatas();
        if (url != null && url.length() > 0) {
            webView.loadUrl(url);
        } else {
            onDataError("预览地址为空");
        }
    }

    /**
     * 设置webview的方法
     */
    private void setwebview() {
        /**
         * Webview在安卓5.0之前默认允许其加载混合网络协议内容
         * 在安卓5.0之后，默认不允许加载http与https混合内容，需要设置webview允许其加载混合网络协议内容
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setUseWideViewPort(true);//使网页自适应屏幕大小
        webView.setWebViewClient(new Mywebviewclent());// 点击链接不调用外部浏览器
        webView.getSettings().setBlockNetworkImage(false);// 可加载图片
        webView.setOnLongClickListener(new View.OnLongClickListener() {

            @Override
            public boolean onLongClick(View v) {
                return true;
            }
        });
    }

    /**
     * 自定义webviewclient
     */
    private class Mywebviewclent extends WebViewClient {
        //webview加载之前
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        //webview加载完毕
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            // html加载完成之后，添加监听图片的点击js函数
            onDataSucceed();
        }

        //        @Override
//        public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
//            onNoDataArrived();
//
//        }
        //webview接受ssl证书
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            // 注意：super句话一定要删除，或者注释掉，否则又走handler.cancel()默认的不支持https的了。
            // super.onReceivedSslError(view, handler, error);
            // handler.cancel(); // Android默认的处理方式
            // handler.handleMessage(Message msg); // 进行其他处理

            handler.proceed(); // 接受所有网站的证书
        }


        @Override
        public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
            onDataError(null);
            super.onReceivedError(view, request, error);

        }
    }
}
